//
// Created by whg on 2025-06-01.
//

#ifndef PYVM_2025_PY_INTEGER_HPP
#define PYVM_2025_PY_INTEGER_HPP

#include "pyObject.hpp"

class IntegerKlass: public Klass{
private:
    static IntegerKlass* instance;
    IntegerKlass();

public:
    static IntegerKlass* getInstance();

    void print(PyObject* obj) override;

    PyObject* add(PyObject* x, PyObject* y) override;

    PyObject* greater(PyObject* x, PyObject* y) override;
    PyObject* less(PyObject* x, PyObject* y) override;
    PyObject* equal(PyObject* x, PyObject* y) override;
};

class PyInteger: public PyObject {
private:
    int _value;

public:
    PyInteger(int i);
    int value(){
        return _value;
    }
};


#endif //PYVM_2025_PY_INTEGER_HPP
